← Back shared

My Awesome RA: AI-Powered Research Assistant for Evidence-Based Academic Writing

Introduction

안녕하세요. 이번에 대학원을 졸업한 고범수입니다. 저는 초보 연구자로서 논문을 처음 “제출 가능한 형태”로 끝까지 완주하는 과정에서, 글쓰기 자체보다 근거를 확인하고 인용을 정리하는 과정에서 더 자주 흐름이 끊긴다는 점을 체감했습니다.

논문은 주로 Overleaf 환경에서 작성했습니다. 하지만 10,000 자 이상으로 길어지는 논문 작성은 단순히 문장을 생산하는 작업이 아니라, 사고의 맥락과 인지적 에너지를 장기간 유지해야 하는 작업에 가깝다고 느꼈습니다. 특히 졸업 논문 이후 컨퍼런스와 저널로 확장되는 과정에서, 출판물 포맷이 바뀔 때마다 동일한 논리를 유지한 채 구조와 톤을 재조정해야 했고, 이 과정이 반복적으로 부담으로 작용했습니다.

문헌이 추가되거나 제거될 때마다, 기존 주장과 인용이 여전히 유효한지 다시 확인해야 했고, 문서가 길어질수록 이러한 점검을 수동으로 수행하는 데 한계가 있음을 느꼈습니다. 이 경험을 통해, 하나의 에디터 안에서 지속적으로 인용을 확인하고 관련 연구를 확인할 수 있는 방식이 필요하다고 판단했습니다.

이번 과제를 계기로, 제가 가장 자주 사용하던 논문 작성 도구인 Overleaf 를 포크 (fork) 하여, AI 기반 참고문헌 관리 패널을 추가한 My Awesome RA를 구현했습니다.

프로젝트 요약 이미지

flowchart LR
    subgraph Overleaf["Overleaf 에디터"]
        Editor["LaTeX 에디터"]
        subgraph Panels["AI 패널"]
            Evidence["Evidence Panel"]
            Chat["Chat Panel"]
            RefLib["Reference Library"]
        end
    end

    subgraph Backend["백엔드"]
        API["FastAPI 서버"]
    end

    subgraph Upstage["Upstage SOLAR API"]
        Solar["Embeddings / Parse / Chat"]
    end

    subgraph Storage["저장소"]
        Chroma[("ChromaDB")]
    end

    Editor <--> Evidence & Chat & RefLib
    Panels --> API
    API <--> Solar
    API <--> Chroma

    style Overleaf fill:#e8f5e9,stroke:#2e7d32
    style Upstage fill:#e3f2fd,stroke:#1565c0
    style Storage fill:#fff3e0,stroke:#ef6c00

1. 문제 정의

논문 작성 과정에서 인용할 근거를 찾고 검증하는 작업이 에디터 외부에서 이루어지면서 작성 흐름이 반복적으로 끊깁니다. 이로 인해 작성 중인 문단에 필요한 근거를 빠르게 특정하기 어렵고, PDF 뷰어·레퍼런스 도구·에디터 간 전환 과정에서 맥락이 소실됩니다. 결과적으로 근거와 주장 간의 연결이 약해지고, 인용 정확도와 문서 전반의 일관성이 저하되며, 문서가 길어질수록 수정과 확장에 필요한 비용이 급격히 증가합니다.

요약하면 다음 세 가지 문제로 정리할 수 있습니다.

기존 방식의 한계는 다음과 같습니다.

2. 해결 방안: My Awesome RA

저는 오픈소스 LaTeX 에디터인 Overleaf Community Edition 을 포크하여, 하나의 에디터 안에서 지속적으로 인용을 확인하고 관련 연구를 확인할 수 있도록 구성했습니다.

세 가지 AI 패널을 추가했습니다: (1) Evidence Panel - 현재 작성 중인 문단을 자동으로 읽어서 관련 근거를 추천합니다. (2) Chat Panel - 참고문헌에 대해 직접 질문하고 답변을 받을 수 있습니다. (3) Reference Library - PDF 를 업로드하고 관리하면 자동으로 검색 가능한 인덱스가 생성됩니다.

이를 통해 " 문단 작성 → 근거 확인 → 질의응답 → 인용 삽입 " 까지 에디터를 벗어나지 않고 한 흐름으로 수행할 수 있습니다.

이 과정에서 Upstage 의 SOLAR API 를 세 가지 방식으로 활용했습니다.

Upstage API 활용 방식

API Endpoint 용도
Embeddings /v1/solar/embeddings 텍스트를 벡터로 변환 (문단/참고문헌 임베딩)
Document Parse /v1/document-ai/document-parse PDF 에서 텍스트 추출 + 페이지 정보
Chat /v1/solar/chat/completions 근거 기반 답변 생성

동작 흐름: PDF 업로드 → Document Parse 로 텍스트 추출 → Embeddings 로 벡터화 → ChromaDB 저장 → 문단 작성 시 Embeddings 로 검색 → Chat 으로 답변 생성

3. 실제 사용 화면

실제로 어떻게 작동하는지 화면으로 보여드리겠습니다.

3.1 Evidence Panel: 자동으로 근거 찾아주기

논문을 쓰다가 현재 문단을 뒷받침할 근거가 필요한 순간, Evidence Panel 은 에디터에서 선택된 문단 (paragraph) 을 기준으로 관련 논문의 섹션들을 유사도 순으로 자동으로 가져옵니다. 검색 결과는 bibliography 단위로 정리되며, 임베딩된 PDF 에서 추출한 실제 섹션 내용을 함께 보여줍니다. 클릭 한 번으로 현재 작성 중인 section 과 연관된 인용 근거를 확인하거나, 원본 PDF 의 정확한 위치로 바로 이동할 수 있습니다.

또한 자동 추천뿐만 아니라, 사용자가 직접 query 를 입력해 관련 논문을 찾아볼 수 있는 Search 기능도 제공합니다.

Evidence Panel Demo

작동 과정:

sequenceDiagram
    participant U as 사용자
    participant E as Evidence Panel
    participant API as Backend API
    participant S as SOLAR Embeddings
    participant DB as ChromaDB

    U->>E: Section 이동/문단 작성
    E->>API: 현재 문단 전송
    API->>S: 문단 → 벡터 변환
    S-->>API: 4096차원 벡터
    API->>DB: 유사도 검색
    DB-->>API: 유사도 순 인용 섹션
    API-->>E: Bibliography별 정렬된 결과
    E-->>U: 클릭으로 PDF 이동 가능

    Note over U,E: 또는 직접 Search 쿼리 입력

Section 을 이동하면 자동으로 유사도 순으로 정렬된 인용 섹션들이 불러와집니다. 각 결과를 클릭하면 해당 PDF 의 정확한 위치로 이동할 수 있습니다.

Reference Library 관리: Evidence Panel 을 위해 Reference Library를 통해 참고문헌을 관리합니다. PDF 업로드, 인덱싱 상태 확인, 임베딩 시도가 가능하며, 업로드된 PDF 는 Upstage Document Parse API 를 통해 자동으로 인덱싱됩니다.

Reference Library

3.2 Chat Panel: 연구 보조자로서의 대화

논문을 작성하다가 특정 개념이나 방법론에 대해 더 명확히 이해하고 싶을 때, Chat Panel 을 통해 작성 중인 문서를 기준으로 직접 질문을 던질 수 있습니다. Chat Panel 은 현재 editor 에 열려 있는 문서의 맥락과 사용자의 질의, 그리고 관련 인용을 함께 고려해 답변을 생성합니다. 이를 통해 단순한 정보 검색을 넘어, 작성 중인 논지를 보완하거나 새로운 관점을 떠올리는 데 도움을 주는 연구 보조자로서의 역할을 수행합니다.

Chat Panel Demo

작동 과정:

sequenceDiagram
    participant U as 사용자
    participant C as Chat Panel
    participant API as Backend API
    participant E as SOLAR Embeddings
    participant DB as ChromaDB
    participant L as SOLAR Chat

    U->>C: 질문 입력
    C->>API: 현재 문서 + 질문
    API->>E: 질문 → 벡터 변환
    E-->>API: 쿼리 벡터
    API->>DB: 유사도 검색
    DB-->>API: 관련 인용 청크들
    API->>L: 현재 문서 + 질문 + 관련 인용
    L-->>API: 인사이트 답변 생성
    API-->>C: 답변 + 출처
    C-->>U: 근거 포함 응답 표시

현재 작성 중인 문서의 맥락과 관련 인용을 함께 고려하여 답변을 생성하므로, "AI 가 지어낸 답변 " 이 아니라 실제 참고문헌에 기반한 연구 보조가 가능합니다.

4. 기대 효과

평소 Overleaf 로 논문을 쓰면서 “이런 기능이 있으면 좋겠다”고 생각만 하던 것을 직접 구현해볼 수 있어서 재밌었습니다. 특히 Overleaf 에 원래 있던 것처럼 보이는 UI 패턴을 따라 새로운 기능을 자연스럽게 붙여보는 경험이 인상적이었습니다. 이번 데모를 통해 만든 이 도구의 기대 효과는 연구자를 대신하는 것이 아니라, 연구자가 연구에만 집중할 수 있도록 증강하는 것입니다. 근거를 찾고 확인하는 반복 작업은 AI 가 맡고, 연구자는 논리 구성과 주장 발전에 더 많은 시간을 쓸 수 있도록 돕는 Research Assistant 를 만드는 것이 목표였습니다. AI 시대에 연구의 방식과 역할 역시 변화하고 있으며 여전히 논쟁적인 지점도 존재하지만, 이번 데모는 그러한 흐름 속에서 나를 증강하는 도구가 어떤 모습일 수 있는지를 보여주는 하나의 사례가 될 수 있다고 생각합니다.